package guoanmaker.operator.business.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import guoanmaker.operator.helper.common.abstractobj.IdEntity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name="t_provider_orderform")
public class ProvideOrderForm extends IdEntity implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private String orderNumber;//订单编号
	private Date placeOrderTime;//下单时间
	private Integer quantity;//数量
	private Double unitPrice;//商品单价
	private Double realPrice;//实际价格
	private Double truePrice;//实际价格(发生退款不变)
	private String orderStatus;//状态：订单状态1待支付  2待接单  3服务中  4待确认   5退款处理中(用户发起退款)   6已完成(未评论)   7已关闭  8退款完成  9退款处理中 (商家已拒绝退款)  10退款处理中(服务商接受退款并向财务发起退款,等待财务平台处理) 11退款处理中(服务商发起关闭订单,等待财务平台退款,退款完成变为12) 12已关闭(未接单发起的退款) 13已完成（已评论）  14议价商品待沟通  15已关闭（付款但未退款） 
	private String remark;//备注
	private Date defrayTime;//支付时间
	private Date acceptOrderTime;//接单时间
	private String defrayNumber;//支付单号
	private Date applyforCompleteTime;//商家完成服务时间
	private Date confirmTime;//买家确认完成时间
	private Date applyforRefundsTime;//买家申请退款时间
	private Date confirmRefundsTime;//商家确认退款时间
	private Date denyRefundsTime;//商家拒绝退款时间
	private String denyRefundsReason;//拒绝退款原因
	private String contactPerson;//联系人
	private String contactNumber;//联系电话
	private String requirementDescription;//需求描述
	private String isOverChangePrice;//是否完成议价商品修改价格 1为已完成
	private String orderType;//订单类型 1一口价商品(非议价)   2议价商品   3预约参观     4活动报名     5租用工位
	private String userCompany;//活动报名用户所在公司
	private String visitTime;//预约参观时间
	private Integer visitorsNum;//参观人数
	private String rentedBeginDate;//租用起始时间
	private String rentedEndDate;//租用结束时间
	private Integer rentedNum;//租用天数
	private BigDecimal commission;//收取佣金
	private BigDecimal bail;//保证金
	private BigDecimal fee;//手续费
	private Date closeTime;//订单关闭时间
	private String isRead;//是否已读，0为未读，1为已读
	private String invoiceState;//给用户的开票状态  0为用户已申请开票，1为已经开票
	private String invoiceid;//发票id
	
	private String fullOrPartRefunds;//涉及到退款的订单，部分或者全额退款标记  1为部分退款   2为全额退款
	
	private String isCheck;//是否已对账 0为未对账  1为已对账  状态为1时 佣金手续费保证金为最终金额
	private Double refundsAmount;//退款金额
	private Double returnPreferentialMoney;//发生退款的返还的优惠金额
	
	private String paymentMethod;//支付方式   微信扫码(wx_pub_qr)，支付宝PC(alipay_pc_direct)，kq(快钱)
	
    private String couponid;//优惠券id
    private String placeOrderType;//下单方式  1为PC   2为APP
	private Double preferentialMoney;//优惠金额
	@Transient
	private String busname;//商户名
	@Transient
	private String servername;//类目
	
	@ManyToOne(cascade=CascadeType.REFRESH,optional=false)
	@JoinColumn(name = "user_id",insertable=false,updatable=false)
	private PersonalUser user;//关联用户
	
	@ManyToOne(cascade=CascadeType.REFRESH,optional=false)
	@JoinColumn(name = "commodity_id",insertable=false,updatable=false)
	private ProvideCommodity commodity;//关联商品
	
	private String spikeid;//秒杀id
	
	private Double spikePrice;//秒杀金额
	
}
